www.gusucode.com > Wind Turbine Model工具箱matlab源码 > Wind Turbine Model/Wind_Turbine_Model_R17b/Scripts/Setup_WT_Configurations.m

    % Copyright 2009-2017 The MathWorks(TM), Inc.

hub_axis_path = char(find_system(gcs,'FollowLinks','on','Name','Hub Axis'));
blade_load_path = char(find_system(gcs,'FollowLinks','on','Name','Blade Load'));
pitch_controller_path = char(find_system(gcs,'FollowLinks','off','Name','Pitch Controller')); % OFF TO CATCH ONLY TOP LEVEL
yaw_controller_path = char(find_system(gcs,'FollowLinks','off','Name','Yaw Controller')); % OFF TO CATCH ONLY TOP LEVEL
main_controller_path = char(find_system(gcs,'FollowLinks','on','Name','Main Controller'));
pitch_system_path = char(find_system(gcs,'FollowLinks','on','Name','Pitch System'));
yaw_system_path = char(find_system(gcs,'FollowLinks','on','Name','Yaw System'));
geartrain_system_path = char(find_system(gcs,'FollowLinks','on','Name','Geartrain'));
generator_system_path = char(find_system(gcs,'FollowLinks','on','Name','Generator'));
turbine_input_path = char(find_system(gcs,'FollowLinks','off','Name','Turbine Input'));

WT_Configs_TBL_COLS  = {'Type'                           'BLADE LOAD'    'GEARTRAIN' 'GENERATOR' 'HUB AXIS' 'TURBINE INPUTS'  'MAIN CONTROLLER' 'PITCH ACTUATOR' 'PITCH CONTROLLER' 'YAW ACTUATOR'   'YAW CONTROLLER' 'SIM_TIME'};
WT_Configs_TABLE{1}  = {'I_Pitch Test'                   'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Ideal'          'Inner Loop'       'Locked'         'Speed Limit'    15}; % 15
WT_Configs_TABLE{2}  = {'H_Pitch Test'                   'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Hydraulic'      'Inner Loop'       'Locked'         'Speed Limit'    15}; % 15
WT_Configs_TABLE{3}  = {'IA_Yaw Test'                    'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Locked'         'Inner Loop'       'Ideal Actuator' 'Speed Limit'    40}; % 40
WT_Configs_TABLE{4}  = {'IM_Yaw Test'                    'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Locked'         'Inner Loop'       'Ideal Motor'    'Speed Limit'    40}; % 40
WT_Configs_TABLE{5}  = {'S_Yaw Test'                     'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Locked'         'Inner Loop'       'Servomotor'     'Speed Limit'    40};
WT_Configs_TABLE{6}  = {'I_Pitch IA_Yaw Test'            'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Ideal'          'Inner Loop'       'Ideal Actuator' 'Speed Limit'    40};
WT_Configs_TABLE{7}  = {'I_Pitch IM_Yaw Test'            'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Ideal'          'Inner Loop'       'Ideal Motor'    'Speed Limit'    40};
WT_Configs_TABLE{8}  = {'I_Pitch S_Yaw Test'             'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Ideal'          'Inner Loop'       'Servomotor'     'Speed Limit'    40};
WT_Configs_TABLE{9}  = {'H_Pitch IA_Yaw Test'            'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Hydraulic'      'Inner Loop'       'Ideal Actuator' 'Speed Limit'    40};
WT_Configs_TABLE{10} = {'H_Pitch IM_Yaw Test'            'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Hydraulic'      'Inner Loop'       'Ideal Motor'    'Speed Limit'    40};
WT_Configs_TABLE{11} = {'H_Pitch S_Yaw Test'             'Torque'        'Empty'     'Simple'    'Locked'   'Commands'        'Direct Input'    'Hydraulic'      'Inner Loop'       'Servomotor'     'Speed Limit'    40};
WT_Configs_TABLE{12} = {'I_Pitch IA_Yaw Lift_Drag'       'Lift and Drag' 'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80}; % 80
WT_Configs_TABLE{13} = {'H_Pitch IA_Yaw Lift_Drag'       'Lift and Drag' 'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80};
WT_Configs_TABLE{14} = {'H_Pitch IM_Yaw Lift_Drag'       'Lift and Drag' 'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Ideal Motor'    'Speed Limit'    80};
WT_Configs_TABLE{15} = {'H_Pitch S_Yaw Lift_Drag'        'Lift and Drag' 'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    80};
WT_Configs_TABLE{16} = {'I_Pitch IA_Yaw Ge Lift_Drag'    'Lift and Drag' 'Ideal'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80};
WT_Configs_TABLE{17} = {'H_Pitch S_Yaw Ge Lift_Drag'     'Lift and Drag' 'Ideal'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    80};
WT_Configs_TABLE{18} = {'I_Pitch L_Yaw Ge Gn Lift_Drag'  'Lift and Drag' 'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Locked'         'Speed Limit'    70};
WT_Configs_TABLE{19} = {'I_Pitch IA_Yaw Ge Gn Lift_Drag' 'Lift and Drag' 'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    70};
WT_Configs_TABLE{20} = {'H_Pitch S_Yaw Ge Gn Lift_Drag'  'Lift and Drag' 'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    70};
WT_Configs_TABLE{21} = {'I_Pitch IA_Yaw Segments'        'Segments'      'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80};
WT_Configs_TABLE{22} = {'H_Pitch IA_Yaw Segments'        'Segments'      'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80};
WT_Configs_TABLE{23} = {'H_Pitch IM_Yaw Segments'        'Segments'      'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Ideal Motor'    'Speed Limit'    80};
WT_Configs_TABLE{24} = {'H_Pitch S_Yaw Segments'         'Segments'      'Empty'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    80};
WT_Configs_TABLE{25} = {'I_Pitch IA_Yaw Ge Segments'     'Segments'      'Ideal'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    80};
WT_Configs_TABLE{26} = {'H_Pitch S_Yaw Ge Segments'      'Segments'      'Ideal'     'Simple'    'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    80};
WT_Configs_TABLE{27} = {'I_Pitch L_Yaw Ge Gn Segments'   'Segments'      'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Locked'         'Speed Limit'    70};
WT_Configs_TABLE{28} = {'I_Pitch IA_Yaw Ge Gn Segments'  'Segments'      'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    70};
WT_Configs_TABLE{29} = {'H_Pitch S_Yaw Ge Gn Segments'   'Segments'      'Ideal'     'Full'      'Rotate'   'Wind'            'Wind Input'      'Hydraulic'      'PI on AoA'        'Servomotor'     'Speed Limit'    70};
WT_Configs_TABLE{30} = {'I_Pitch IA_Yaw Ge Lift_Drag W2' 'Lift and Drag' 'Ideal'     'Simple'    'Rotate'   'Wind High Speed' 'Wind Input'      'Ideal'          'PI on AoA'        'Ideal Actuator' 'Speed Limit'    60};


for i=1:length(WT_Configs_TABLE)
    WT_Configs(i).Type = WT_Configs_TABLE{i}{1};
    WT_Configs(i).Blade_Load.choice = WT_Configs_TABLE{i}{2};
    WT_Configs(i).Geartrain.choice = WT_Configs_TABLE{i}{3};
    WT_Configs(i).Generator.choice = WT_Configs_TABLE{i}{4};
    WT_Configs(i).Hub_Axis.choice = WT_Configs_TABLE{i}{5};
    WT_Configs(i).Turbine_Input.choice = WT_Configs_TABLE{i}{6};
    WT_Configs(i).Main_Controller.choice = WT_Configs_TABLE{i}{7};
    WT_Configs(i).Pitch_System.choice = WT_Configs_TABLE{i}{8};
    WT_Configs(i).Pitch_Controller.choice = WT_Configs_TABLE{i}{9};
    WT_Configs(i).Yaw_System.choice = WT_Configs_TABLE{i}{10};
    WT_Configs(i).Yaw_Controller.choice = WT_Configs_TABLE{i}{11};
    WT_Configs(i).Sim_Time = WT_Configs_TABLE{i}{12};
end


for i=1:length(WT_Configs)
    WT_Configs(i).Hub_Axis.path = {hub_axis_path};
    WT_Configs(i).Turbine_Input.path = {turbine_input_path};
    WT_Configs(i).Pitch_System.path = {pitch_system_path};
    WT_Configs(i).Pitch_Controller.path = {pitch_controller_path};
    WT_Configs(i).Yaw_System.path = {yaw_system_path};
    WT_Configs(i).Yaw_Controller.path = {yaw_controller_path};
    WT_Configs(i).Main_Controller.path = {main_controller_path};
    WT_Configs(i).Geartrain.path = {geartrain_system_path};
    WT_Configs(i).Generator.path = {generator_system_path};
    WT_Configs(i).Blade_Load.path = {blade_load_path};
end